package cn.kgc.cloud.client;

import cn.kgc.cloud.entity.Order;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author 课工场
 * @date 2024/1/4
 * @description
 * @FeignClient("ORDERSERVICE") 声明请求发送之前 到注册中心拉取节点的服务名称
 * ip:port/orders/m1
 * <p>
 * OrderClient接口中 可以声明需要调用order服务的那些接口
 */
@FeignClient("ORDERSERVICE")
public interface OrderClient {

    @GetMapping("/orders/m1")
    String method1();

    //  /orders/m2?id=10
    @GetMapping("/orders/m2")
    String  method2(@RequestParam("id") Integer id);

    // /orders/m3/10
    @GetMapping("/orders/m3/{id}")
    String  method3(@PathVariable("id") Integer id);


    @RequestMapping("/orders/m4")
    String  method4(@RequestParam("name")String name, @RequestParam("number")Integer number);

    @RequestMapping("/orders/m5")
    String  method5(@RequestParam("name")String name, @RequestParam("number")Integer number);


    //  @RequestBody  在发起请求时 会将Order转换成json格式
    @RequestMapping("/orders/m6")
    String  method6(@RequestBody Order order);


    // /orders/m7?ids=1&ids=2
    @RequestMapping("/orders/m7")
    String  method7(@RequestParam("ids") Integer[] ids);


    @RequestMapping("/orders/m8")
    Order  method8(@RequestParam("id") Integer id);

    @RequestMapping("/orders/m9")
    List<Order> method9();
}
